﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using negocio;
using model;


namespace WebCliente
{
    public partial class SolicitarCita : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                llenarTipoTramite();
                llenarCiudades();
            }
        }

        private void llenarTipoTramite()
        {
            CitaBO citaBO = new CitaBO();

            ddlTipoTramite.DataSource = citaBO.listarTipoTramites();
            ddlTipoTramite.DataTextField = "DESCRIPCION";
            ddlTipoTramite.DataValueField = "IDTIPOTRAMITE";

            ddlTipoTramite.DataBind();

            ddlTipoTramite.SelectedIndex = 0;
            cargarDocumentosRequeridos(int.Parse(ddlTipoTramite.SelectedValue));
        }

        private void llenarCiudades()
        {
            CitaBO citaBO = new CitaBO();

            ddlCiudad.DataSource = citaBO.listarCiudades();
            ddlCiudad.DataTextField = "DESCRIPCION";
            ddlCiudad.DataValueField = "IDCIUDAD";

            ddlCiudad.DataBind();

            ddlCiudad.SelectedIndex = 0;
            listarNotariaPorCiudad(int.Parse(ddlCiudad.SelectedValue));
        }

        protected void ddlTipoTramite_SelectedIndexChanged(object sender, EventArgs e)
        {
            cargarDocumentosRequeridos(int.Parse(ddlTipoTramite.SelectedValue));
        }
        protected void ddlCiudad_SelectedIndexChanged(object sender, EventArgs e)
        {
            listarNotariaPorCiudad(int.Parse(ddlCiudad.SelectedValue));
        }

        public void cargarDocumentosRequeridos(int idTipoTramite)
        {
            CitaBO citaBO = new CitaBO();
            lblDocumentosRequeridos.Text = citaBO.getTipoTramitePorId(idTipoTramite).DOCUMENTACIONREQUERIDA;
        }
        public void listarNotariaPorCiudad(int idCiudad)
        {
            CitaBO citaBO = new CitaBO();
            ddlNotaria.DataSource = citaBO.listarNotariaPorCiudad(idCiudad);
            ddlNotaria.DataTextField = "RAZONSOCIAL";
            ddlNotaria.DataValueField = "IDNOTARIA";

            ddlNotaria.DataBind();
        }


        protected void txtNumeroIdentificacion_TextChanged(object sender, EventArgs e)
        {
            SolicitanteBO solicitanteBO = new SolicitanteBO();
            SOLICITANTE solicitante = new SOLICITANTE();

            solicitante = solicitanteBO.getSolicitantePorId(txtNumeroIdentificacion.Text);

            if (solicitante != null)
            {
                txtNombres.Text = solicitante.NOMBRES;
                txtEmail.Text = solicitante.EMAIL;
                txtIdSolicitante.Text = solicitante.IDSOLICITANTE.ToString();
            }
            else
            {
                txtNombres.Text = txtEmail.Text = txtIdSolicitante.Text = "";
            }
        }

        //public void actualizarPorAsignador()
        //{
        //    CitaBO citaBO = new CitaBO();
        //    CITA cita = new CITA();
        //    ESTADO estado = new ESTADO();
            
        //    //Agendado
        //    estado= citaBO.getEstadoPorCodigo("A");
        //    cita.IDESTADO = estado.IDESTADO;
        //    cita.IDASIGNADOR=
        //    cita.FECHACITA=
        //    cita.OBSERVACIONFUNCIONARIO

        //    citaBO.actualizarPorAsignador(cita);
        //}

        protected void btnGuardar_Click(object sender, EventArgs e)
        {
            CitaBO citaBO = new CitaBO();
            SolicitanteBO solicitanteBO = new SolicitanteBO();

            SOLICITANTE solicitante = new SOLICITANTE();
            CITA cita = new CITA();
            ESTADO estado= new ESTADO();

            solicitante.EMAIL = txtEmail.Text;
            solicitante.NOMBRES = txtNombres.Text;
            solicitante.IDENTIFIACION = txtNumeroIdentificacion.Text;
            
            //Por Agendar
            estado = citaBO.getEstadoPorCodigo("PA");

            //si no existe el solicitante, se crea
            if (txtIdSolicitante.Text == "")
            {
                int idSolicitante = solicitanteBO.insertar(solicitante);
                solicitante.IDSOLICITANTE = idSolicitante;
            }
            else
            {
                solicitante.IDSOLICITANTE = decimal.Parse(txtIdSolicitante.Text);
            }


            //grabar la cita
            cita.IDSOLICITANTE = solicitante.IDSOLICITANTE;
            cita.IDNOTARIA = decimal.Parse( ddlNotaria.SelectedValue);
            cita.IDTIPOTRAMITE = decimal.Parse(ddlTipoTramite.SelectedValue);
            cita.IDESTADO = estado.IDESTADO;

            citaBO.insertar(cita);

            lbMensaje.Text = "Cita creada exitosamente.";
        }

        
    }
}